/*
 * @Author: yx
 * @Date: 2021-02-06 21:33:31
 * @LastEditTime: 2021-02-16 13:47:15
 * @LastEditors: Please set LastEditors
 * @Description: 网易音乐的各种接口
 * @FilePath: \Music\server\API\Netease.js
 */
import request from './request'
/**
 * @description: 格式化歌词 
 * @param {*} lyric 主歌词
 * @param {*} lyricZh 中文歌词，默认为空
 * @return {*} 格式化后的歌词
 */
export function formatLyricsByNetease(lyric, lyricZh = "") {
  if (!lyric.length) return {}
  var rule1 = new RegExp(/\[[0-9]{2}:[0-9]{2}\.[0-9]{3}\]/),
    rule2 = new RegExp(/\n/),
    // 剔除空行
    ly1 = lyric.split(rule2).filter(v => v.length > 11),
    natLy = ly1.join('\n'),
    hasZh = false
  // 若有中文版歌词
  if (!!lyricZh) {
    var ly2 = lyricZh.replace(/\[by:{0,100}\]/g, '').split(rule2).filter(v => v.length > 11)
    for (let i = ly1.length - 1, j = ly2.length - 1; j >= 0; i--, j--) {
      ly1[i] = ly1[i] + '\n' + ly2[j].slice(11)
    }
    hasZh = true
  }
  return {
    hasZh,
    natLy,
    zhLy: ly1.join('\n')
  }
}

/**
 * @description: 网易云关键词搜索
 * @param {*} keyword 关键词
 * @param {*} page 页码 0+
 * @param {*} pagesize 分页大小
 * @return {*}
 */
export function searchFromNetease(keyword, page, pagesize) {
  return request({
    method: 'get',
    url: '/netease/search',
    params: {
      keyword,
      page,
      pagesize
    }
  })
}

/**
 * @description: 网易云通过专辑id获取封面
 * @param {*} id 专辑id
 * @return {*}
 */
export function getAlbumImgFromNetease(id) {
  return request({
    method: 'get',
    url: '/netease/getAlbumImg',
    params: {
      id
    }
  })
}

/**
 * @description: 网易云通过id获取歌词
 * @param {*} id 歌曲id
 * @return {*}
 */
export function getLyricsFromNetease(id) {
  return request({
    method: 'get',
    url: '/netease/getLyrics',
    params: {
      id
    }
  })
}

/**
 * @description: 网易云通过id获取歌曲链接
 * @param {*} id 歌曲id
 * @return {*}
 */
export function getMusicUrlFromNetease(id) {
  return request({
    method: 'get',
    url: '/netease/getMusicUrl',
    params: {
      id
    }
  })
}

/**
 * @description: 网易云检查歌曲链接是否有效
 * @param {*} id 歌曲id
 * @return {*}
 */
export function checkUrlByNetease(id) {
  return request({
    method: 'get',
    url: '/netease/check',
    params: {
      id
    }
  })
}
